package com.hzz.api.river;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.hzz.dto.analysis.RiverInfoStatDto;
import com.hzz.dto.river.RiverInfoDto;
import com.hzz.framework.Response;
/**
 * <p>河道名录 业务处理接口类。
 */
public interface IRiverInfoService {
    /**
     * <p>信息编辑。
     */
    Response saveOrUpdateData(RiverInfoDto dto) throws Exception;

    /**
     * <p>物理删除。
     */
    String deleteData(RiverInfoDto dto) throws Exception;


    /**
     * <li>逻辑删除。
     */
    String deleteDataById(RiverInfoDto dto) throws Exception;

    /**
     * <p>信息列表 分页。
     */
    PageInfo findDataIsPage(RiverInfoDto dto) throws Exception;

    /**
     * <p>信息列表。
     */
    List<RiverInfoDto> findDataIsList(RiverInfoDto dto) throws Exception;


    /**
     * <p>信息详情。
     */
    RiverInfoDto findDataById(RiverInfoDto dto) throws Exception;

	/**
	 * 根据行政区划ID按等级统计下级河道数量(图表用)
	 * 
	 * @param currAreaId
	 * @return
	 */
	List<RiverInfoStatDto> statLevelNumByParentAreaId(Long currAreaId);

	/**
	 * 根据行政区划ID按下级区划名称统计乡镇级和村级河道数量（列表用）
	 * 
	 * @param dto
	 * @return
	 * @throws Exception
	 */
	PageInfo<RiverInfoStatDto> statNameNumByParentAreaId(RiverInfoDto dto) throws Exception;

	/**
	 * 查询总河段总量
	 * 
	 * @return
	 */
	int getTotalNum(Integer type);
}
